from enum import Enum, StrEnum


class EnumBase(Enum):

    @classmethod
    def get_member_values(cls):
        return [item.value for item in cls._member_map_.values()]

    @classmethod
    def get_member_names(cls):
        return [name for name in cls._member_names_]


class MethodType(StrEnum):
    GET = 'GET'
    POST = 'POST'
    PUT = 'PUT'
    DELETE = 'DELETE'
    PATCH = 'PATCH'


class IntEnum(int, EnumBase):
    ...


class StrEnum(str, EnumBase):
    ...


class BoolEnum(bool, EnumBase):
    ...


class FloatEnum(float, EnumBase):
    ...
